
#//////////////////////function to reduce fastq data
#Fd - filename with forward reads
#Rd - filename with reverse reads 
#Rd_filtr - filename for reduce forward reads
#Rd_filtr - filename for reduce reverse reads
#rate - percentage of reads that should remain in the reduced data of reads that should remain in the reduced data

paired_preparation<-function(Fd, Rd, Fd_filtr, Rd_filtr, rate)
 {
    con_R1<-gzfile(Fd, open ="r")
    con_R2<-gzfile(Rd, open ="r")
	
	st_R1<-readLines(con_R1)
    st_R2<-readLines(con_R2)
	
	close(con_R1)
    close(con_R2)
	
	n_pas<-length(st_R1)/4
	
	n_seq<-sample(n_pas*rate, c(1:n_pas))
	
	sample_R1<-rep("0", 4*length(n_seq))
	sample_R2<-rep("0", 4*length(n_seq))
	
	for(i in 1:length(n_seq))
	 {
	  sample_R1[4*i-3]<-st_R1[4*n_seq[i]-3]
	  sample_R1[4*i-2]<-st_R1[4*n_seq[i]-2]
	  nbase=nbase+nchar(st_R1[4*n_seq[i]-2])
	  sample_R1[4*i-1]<-st_R1[4*n_seq[i]-1]
	  sample_R1[4*i]<-st_R1[4*n_seq[i]]
	  
	  sample_R2[4*i-3]<-st_R2[4*n_seq[i]-3]
	  sample_R2[4*i-2]<-st_R2[4*n_seq[i]-2]
	  nbase=nbase+nchar(st_R2[4*n_seq[i]-2])
	  sample_R2[4*i-1]<-st_R2[4*n_seq[i]-1]
	  sample_R2[4*i]<-st_R2[4*n_seq[i]]
	  
	 }
	
    wcon_R1<-gzfile(Fd_filtr, open ="w")
    wcon_R2<-gzfile(Rd_filtr, open ="w")
    wcon<-gzfile(fasta_filtr, open ="w")
	
	writeLines(sample_R1, wcon_R1)
	writeLines(sample_R2, wcon_R2)
	writeLines(fasta_data, wcon)
	
	close(wcon_R1)
    close(wcon_R2)
     
 }




#///////////function usage example

setwd("home/bio/FASQ_data")

paired_preparation(Fd="data_R1.fsatq.gz", Rd="data_R2.fsatq.gz", Fd_filtr="data_reduce_R1.fsatq.gz", Rd_filtr="data_reduce_R2.fsatq.gz", rate=0.2)
 